3784207f891eb096e82164d2902e48d712ff3b31,clouddesigner/org.occiware.clouddesigner.occi.infrastructure.connector.vmware/src/org/occiware/clouddesigner/occi/infrastructure/connector/vmware/StorageConnector.java,StorageConnector,occiUpdate,#,391
Before Change
public void occiUpdate() {
titleMessage = "Update a virtual disk : " + getTitle();
IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
LOGGER.debug("occiUpdate() called on " + this);
if (!VCenterClient.checkConnection()) {
// Must return true if connection is established.
globalMessage = "No connection to Vcenter has been established.";
levelMessage = Level.WARN;
LOGGER.warn(globalMessage);
return;
}
SubMonitor subMonitor = null;
boolean toMonitor = false;
if (monitor != null) {
toMonitor = true;
}
if (toMonitor) {
subMonitor = SubMonitor.convert(monitor, 100);
// consume..
subMonitor.worked(10);
}
volumeName = getTitle();
try {
loadDatastoreAndDatacenter();
} catch (DatacenterNotFoundException | DatastoreNotFoundException ex) {
if (datastore == null) {
globalMessage = "Cant locate a datastore for this storage disk.";
levelMessage = Level.ERROR;
LOGGER.error(globalMessage);
VCenterClient.disconnect();
return;
}
if (datacenter == null) {
globalMessage = "Cant locate a datacenter for this storage disk.";
levelMessage = Level.ERROR;
LOGGER.error(globalMessage);
VCenterClient.disconnect();
return;
}
}
if (monitor != null) {
subMonitor.worked(40);
}
if (oldDiskName == null) {
oldDiskName = volumeName;
}
if (oldDiskSize == null) {
oldDiskSize = getSize();
}
// Resizing.
if (oldDiskSize != size) {
VolumeHelper.setSize(volumeName, size);
try {
VolumeHelper.resizeDisk(volumeName, size);
globalMessage = "Resize disk operation success";
levelMessage = Level.INFO;
LOGGER.error(globalMessage);
} catch (DiskNotFoundException | ResizeDiskException ex) {
globalMessage = ex.getMessage();
levelMessage = Level.ERROR;
LOGGER.error(globalMessage);
}
}
if (monitor != null) {
subMonitor.worked(60);
}
// Renaming. (include vmdk file rename).
if (!oldDiskName.equals(volumeName)) {
// Try to rename the disk (and the vmdk file).
try {
VolumeHelper.renameDisk(oldDiskName, volumeName);
oldDiskName = volumeName;
globalMessage += " \n rename disk operation success";
levelMessage = Level.INFO;
LOGGER.error(globalMessage);
} catch (DiskNotFoundException | RenameDiskException ex) {
globalMessage = ex.getMessage();
levelMessage = Level.ERROR;
LOGGER.error(globalMessage);
}
}
if (monitor != null) {
subMonitor.worked(100);
}
// In all case invoke a disconnect from vcenter.
VCenterClient.disconnect();
}
};
UIDialog.executeActionThread(runnableWithProgress, titleMessage);
if (globalMessage != null && !globalMessage.isEmpty()) {
UIDialog.showUserMessage(titleMessage, globalMessage, levelMessage);
After Change
@Override
public void occiUpdate() {
titleMessage = "Update a virtual disk : " + getTitle();
LOGGER.debug("occiUpdate() called on " + this);
if (UIDialog.isStandAlone()) {
// Launching thread with business code.
LOGGER.debug("Console mode.");
Runnable runnable = new Runnable() {
@Override
public void run() {
updateStorage(null);
}
};
UIDialog.executeActionThread(runnable, titleMessage);
} else {
// Launching IRunnableWithProgress UI thread with business code.
LOGGER.debug("UI mode.");
IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
updateStorage(monitor);
}
};
UIDialog.executeActionThread(runnableWithProgress, titleMessage);
if (globalMessage != null && !globalMessage.isEmpty()) {
UIDialog.showUserMessage(titleMessage, globalMessage, levelMessage);
}